package tech.waterism.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import tech.waterism.entity.DForecastC;
import tech.waterism.entity.FForecastC;
import tech.waterism.entity.FPDefault;
import tech.waterism.entity.FPForecastC;

import java.util.List;

@Data
@ApiModel(value = "拓扑对象Dto")
public class TopoObjectDto {

    /**
     * 预报方案索引
     */
    @ApiModelProperty(value = "预报方案索引")
    private FPIndexDto fpIndex;

    /**
     * 方案输入
     */
    @ApiModelProperty(value = "方案输入")
    private List<FPInputDto> fpInputs;

    /**
     * 中间预报成果列表
     */
    @ApiModelProperty(value = "中间预报成果列表")
    private List<FPForecastC> fpForecastCList;

    /**
     * 中间预报成果
     */
    @ApiModelProperty(value = "中间预报成果")
    private FPForecastC fpForecastC;

    /**
     * 最终预报成果列表
     */
    @ApiModelProperty(value = "最终预报成果列表")
    private List<FForecastC> fForecastCList;

    /**
     * 最终预报成果
     */
    @ApiModelProperty(value = "最终预报成果")
    private FForecastC fForecastC;

    /**
     * 默认方案
     */
    @ApiModelProperty(value = "默认方案")
    private FPDefault fpDefault;

    /**
     * 上传预报成果列表
     */
    @ApiModelProperty(value = "上传预报成果列表")
    private List<DForecastC> dForecastCList;

    /**
     * 上传预报成果
     */
    @ApiModelProperty(value = "上传预报成果")
    private DForecastC dforecastC;

    /**
     * 上传预报成果
     */
    @ApiModelProperty(value = "上传预报成果")
    private DForecastCDto dforecastCDto;

    /**
     * 正式库预报成果
     */
    @ApiModelProperty(value = "正式库预报成果")
    private StForecastFFormal formalForecastC;

    /**
     * 计算排序
     */
    @ApiModelProperty(value = "计算排序")
    private Integer ordernum;

    /**
     * 使用一维水动力计算
     */
    @ApiModelProperty(value = "使用一维水动力计算")
    private Boolean useHydro;

    /**
     * 下游边界数据(一维水动力)
     */
    @ApiModelProperty(value = "下游边界数据(一维水动力)")
    private DownStreamData downStreamData;

    @JsonIgnore
    private Boolean isLeaf;

    /**
     * 出库流量
     */
    @ApiModelProperty(value = "出库流量")
    private Double qout;

    @ApiModelProperty(value = "三种工况")
    private Integer dispatchType;

    @ApiModelProperty(value = "测站数据是否有变动，用于前端查看")
    private Boolean change;
}
